Windows后台执行WSL2的SHELL命令 | 您所在的位置:网站首页 › wsl 开机自启动 › Windows后台执行WSL2的SHELL命令 |
文章目录
概要整体架构流程技术名词解释技术细节1.具体操作1.注意事项1.环境变量2.生命周期
小结
概要
我们都知道WSL2现在性能已经能够达到生产力水平了,除了目前有些硬件支持的还不太好,比如USB没有原生支持。我有一个项目只有一台电脑并需要Windows和Linux联动(主要网络),有两种方案: 1、安装Linux+Wine 2、安装Windows+WSL2 综合考虑选择了后者,原因很简单Wine面对很多问题,而且是开源免费的东西,不像WSL2可是微软请来的技术专家做的,被誉为最好的Linux发行版。 整体架构流程平常在使用WSL2的时候需要指定登录某一个分发版,目前支持的有Ubuntu、CentOS、Debian、OpenSUSE等。 当我们需要执行shell的时候都要先打开分发板的面板才能进入shell环境,就像你在Linux上打开一个命令行一样,你所有的操作都是在当前环境里面。 如果我不需要看到WSL2的命令行界面呢?毕竟我希望实现开机自启动,这个时候我们就不得不依赖wsl.exe这个程序了。 技术名词解释* 后台执行 这里的后台执行并不是任务切换到后台,而是指不需要值守不需要人为操作UI的情况下,通过一系列命令完成WSL2的SHELL命令。 技术细节 1.具体操作wsl.exe是运行在Windows上的一个程序,确切来讲是Windows10和Windows11,Windows7不支持。它是用来和WSL交互的程序或者WSL的管理程序。它有很多参数可供选择,不过我们今天只用到几种。 以Ubuntu-22.04为例,需要指定哪个发行版去执行命令。至于怎么查看自己的发行版,我以前的文章里都提过,这里再说一下。 wsl.exe --list -v NAME STATE VERSION * Ubuntu-20.04 Stopped 2 Ubuntu-22.04 Running 2 Ubuntu-18.04 Stopped 2 CentOS8 Stopped 2 CentOS7 Stopped 2上面的NAME就是发行版的名字,STATE是运行状态,VERSION是版本。 执行命令也很简单,下面是打印网卡信息的命令,标准输出会打印网卡信息,和你登录进去打印的一模一样。 不一样的是下面的命令不需要你手动起一个Ubuntu的命令行页面,一切看起来都像是在后台执行的一样。 wsl -d Ubuntu-22.04 -u anold --exec /bin/bash -c ‘ifconfig’ 1.注意事项 1.环境变量这里有一个需要注意的地方,你没有登录到发行版里面去,有些指令是不生效的比如:ll。这个命令是定义在.bashrc里面的alias。因为.bashrc没有被执行,所以配置在里面的ll不生效,当然还有很多命令也不生效,这里就不一一列举了。 2.生命周期如果你的WSL配置策略是按需使用的话,你就需要注意了,如果你长时间不再使用WSL它就会被自动回收掉。 NAME STATE VERSION * Ubuntu-20.04 Stopped 2 Ubuntu-22.04 Stopped 2 Ubuntu-18.04 Stopped 2 CentOS8 Stopped 2 CentOS7 Stopped 2确保你的服务一直处于活跃状态。 小结蛮简单的,没有什么多余的操作。当然,wsl.exe还有很多功能等待被挖掘。 |
CopyRight 2018-2019 实验室设备网 版权所有 |